package com.irdstudio.efp.esb.api.bean.sed.ploaninfo;

import com.alibaba.fastjson.annotation.JSONField;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.basic.framework.core.annotation.NumType;
import com.irdstudio.basic.framework.core.constant.DblStEnum;
import com.irdstudio.basic.framework.core.constant.SDicCertTypeEnum;
import com.irdstudio.basic.framework.core.constant.SDicChannelType;
import com.irdstudio.efp.esb.api.common.sed.PersonalLoanQryTypeEnum;
import com.irdstudio.efp.esb.api.common.sed.SedEnum;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;

/**
* 普税贷产品对税e贷产品的此部分代码做了复用
* 说明：为了保证功能的复用性、提升开发的工作效率，对该代码进行了复用
* 评估是否会影响线上功能：否
* 评估时间：2020/5/25
* 处理方案：保留复用
*/
/**
 * 需求编号：【2019D0519】
 * 问题编号：【】
 * 开发人员：xiaojunhui
 * 创建日期：2019/5/10 15:09
 * 功能描述：个人借据信息查询请求参数封装
 */
public class ReqPersonalLoanInfo {
    /**
     * 用信申请流水号
     */
    @JSONField(name = "UseCrdtAppFlowNo")
    @Length(max = 64)
    private String oriTxnFlowNo;
    /**
     * 授信协议编号
     */
    @JSONField(name = "CrdAgrmNo")
    @Length(max = 60)
    private String crdAgrmNo;
    /**
     * 客户号
     */
    @JSONField(name = "ClntNo")
    @Length(max = 20)
    private String clntNo;
    /**
     * 证件类型
     */
    @JSONField(name = "CertTp")
    @DicType(dicType = SDicCertTypeEnum.class, method = "getValue")
    @Length(max = 32)
    private String certTp;
    /**
     * 证件号码
     */
    @JSONField(name = "CertNo")
    @Length(max = 32)
    private String certNo;
    /**
     * 产品ID
     */
    @JSONField(name = "PrdctID")
    @DicType(dicType= SedEnum.PrdCodeEnum.class,message="产品ID字典项校验错误",method="getValue")
    @Length(max = 8)
    private String prdctId;
    /**
     * 借据状态
     */
    @JSONField(name = "DblSt")
    @Length(max = 3)
    @DicType(dicType = DblStEnum.class, method = "getValue")
    private String dblSt;
    /**
     * 渠道号
     */
    @JSONField(name = "ChanNo")
    @Length(max = 3)
    @DicType(dicType = SDicChannelType.class,message = "非法的渠道编号",method = "getValue")
    private String chanNo;
    /**
     * 查询类型
     */
    @JSONField(name = "QryTp")
    @NotNull
    @NotEmpty
    @DicType(dicType = PersonalLoanQryTypeEnum.class, message = "查询类型只支持01、02、03、04、05、06、07", method = "getValue")
    @Length(max = 3)
    private String qryTp;
    /**
     * 页码
     */
    @NumType
    @Length(max = 9,message = "页码最大长度不能超过9位")
    @JSONField(name = "PgNO")
    private String pgNO;

    /**
     * 每页记录数
     */
    @NumType
    @Length(max = 9,message = "每页记录数最大长度不能超过9位")
    @JSONField(name = "PerPgRcrNum")
    private String perPgRcrNum;


    public String getOriTxnFlowNo() {
        return oriTxnFlowNo;
    }

    public void setOriTxnFlowNo(String oriTxnFlowNo) {
        this.oriTxnFlowNo = oriTxnFlowNo;
    }

    public String getCrdAgrmNo() {
        return crdAgrmNo;
    }

    public void setCrdAgrmNo(String crdAgrmNo) {
        this.crdAgrmNo = crdAgrmNo;
    }

    public String getClntNo() {
        return clntNo;
    }

    public void setClntNo(String clntNo) {
        this.clntNo = clntNo;
    }

    public String getCertTp() {
        return certTp;
    }

    public void setCertTp(String certTp) {
        this.certTp = certTp;
    }

    public String getCertNo() {
        return certNo;
    }

    public void setCertNo(String certNo) {
        this.certNo = certNo;
    }

    public String getPrdctId() {
        return prdctId;
    }

    public void setPrdctId(String prdctId) {
        this.prdctId = prdctId;
    }

    public String getDblSt() {
        return dblSt;
    }

    public void setDblSt(String dblSt) {
        this.dblSt = dblSt;
    }

    public String getChanNo() {
        return chanNo;
    }

    public void setChanNo(String chanNo) {
        this.chanNo = chanNo;
    }

    public String getQryTp() {
        return qryTp;
    }

    public void setQryTp(String qryTp) {
        this.qryTp = qryTp;
    }

    public String getPgNO() {
        return pgNO;
    }

    public void setPgNO(String pgNO) {
        this.pgNO = pgNO;
    }

    public String getPerPgRcrNum() {
        return perPgRcrNum;
    }

    public void setPerPgRcrNum(String perPgRcrNum) {
        this.perPgRcrNum = perPgRcrNum;
    }
}
